// 用户信息结构体与全局变量
#define MAX_USERS 100
typedef struct {
    int userId;
    char name[50];
    char address[100];
    char contact[20];
} User;
User users[MAX_USERS];
int userCount = 0;

// 系统初始化（从文件/数据库加载）
void initData() {
    // 初始化示例用户
    strcpy(users[0].name, "张三");
    users[0].userId = 1;
    userCount++;
    strcpy(users[1].name, "李四");
    users[1].userId = 2;
    userCount++;
    
    // 可扩展为文件读取
    FILE* file = fopen("users.dat", "rb");
    if (file) {
        userCount = fread(users, sizeof(User), MAX_USERS, file);
        fclose(file);
    }
}

// 用户管理主界面
void showUserManagement() {
    system("cls");
    printf("================ 用户管理系统 ================\n");
    viewUsers();
    printf("1. 添加用户\n2. 查找用户\n0. 返回\n");
    int choice = getIntInput();
    switch (choice) {
        case 1: addUser(); break;
        case 2: searchUser(); break;
        default: return;
    }
}

// 添加用户（含ID唯一性校验）
void addUser() {
    printf("请输入用户ID: ");
    int userId = getIntInput();
    // 线性查找校验ID唯一性（O(n)）
    for (int i = 0; i < userCount; i++) {
        if (users[i].userId == userId) {
            printf("ID已存在！\n");
            return;
        }
    }
    // 录入用户信息
    users[userCount].userId = userId;
    // ... 其他字段输入
    userCount++;
}

// 查找用户（支持ID/姓名查询）
void searchUser() {
    printf("1. 按ID查询\n2. 按姓名查询\n");
    int choice = getIntInput();
    if (choice == 1) {
        int id = getIntInput();
        for (int i = 0; i < userCount; i++) {
            if (users[i].userId == id) {
                printf("用户找到: %s\n", users[i].name);
                return;
            }
        }
    } else {
        char name[50];
        getchar();
        fgets(name, 50, stdin);
        name[strcspn(name, "\n")] = 0;
        for (int i = 0; i < userCount; i++) {
            if (strcmp(users[i].name, name) == 0) {
                printf("用户找到: ID=%d\n", users[i].userId);
                return;
            }
        }
    }
    printf("未找到用户！\n");
}